<?
//字符串散步曲
//计算字符串长度
//截取字符串
//判断长度截取字符串
?>


<?
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
    return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
        '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
        '$1',$str);
}
?>






<?
//传递字符串过来，判断字符串长度。
//针对中文
function utf8_strlen($str)
{
    $count = 0;
    for ($i = 0; $i < strlen($str); $i++) {
        $value = ord($str[$i]);
        if ($value > 127) {
            $count++;
            if ($value >= 192 && $value <= 223) $i++;
            elseif ($value >= 224 && $value <= 239) $i = $i + 2;
            elseif ($value >= 240 && $value <= 247) $i = $i + 3;
            else die('Not a UTF-8 compatible string');
        }
        $count++;
    }
    return $count / 2;
}

?>




<?
//!!!!!!!!!!!!!!!!!!!!!!
//这个函数嵌套了函数，不符合设计思想。需要把其余的函数重新写进这个函数当中
//!!!!!!!!!!!!!!!!!!!!!!




//判断字符长度大于设定值，则阶段并加省略号
//中文字3字节，英文数字1字节
function cutstr($text, $long)
{
if (utf8_strlen($text) > $long) {
$function_result = utf8Substr($text, 0, $long) . "...";
} else {
$function_result = $text;
}

return $function_result;
}

?>